matlab chemistry java mathematics engineering software mri simulink c++ mrt cheminformatics learning education engineering software computational chemistry math structure determination crystallography geology crystal crystals cad bioinformatics